﻿
using HBase;
using System;
using System.Collections.Generic;

namespace hCommand {
    /// <summary>
    /// 货架
    /// </summary>
    public class CoreTaskParam :BaseEntity {
        public long taskId { get; set; }
     
        public String param { get; set; }//split ; 
        /// <summary>
        ///新建 = 1, 可以接收任务 = 2, 下发完成 = 3, 执行完成 = 9, 删除 = -1
        /// </summary>
        public int status { get; set; }
        public int src { get; set; }
        public int des { get; set; }
        public DateTime createTime { get; set; }
        public byte type { get; set; }
        public String relyId { get; set; }
        public int cNo { get; set; }
        public int cStn { get; set; }
        public int cDes { get; set; }
        public DateTime? ct { get; set; }
        public string cName { get; set; }
        public int taskNo { get; set; }

       private static String name = typeof(CoreTaskParam).Name;
        public static CoreTaskParam getCoreTaskParam(long id) {
            return MyCache.getValue<CoreTaskParam>(name, id);
        }

        private List<long> relay;
       public List<long> getRelay() {
            if (relay == null) {
                relay = new List<long>(); 
                if (!String.IsNullOrEmpty(relyId)) { 
                    String[] relayArr = relyId.Split(",");
                    foreach (var r in relayArr) {
                        relay.Add(long.Parse(r));
                    }
                }
            }
            return relay;   
        }
    }
    public enum CoreTaskParamStatus {
        删除 = -1,
        新建 = 1,
        可以接收任务 = 2,
        下发完成 = 3,
        待执行 = 11,
        取货行走中 = 12,
        起始位置占用 = 17,
        到达取货 = 20,
        取货中 = 25,
        空取 = 30,// 需要上报mes
        取货完成 = 40,
        放货行走中 = 42,
        离开原货位 = 45,
        目标位置占用 = 48,
        达到目标位置 = 50,// 需要上报mes
        满放变更 = 70,// 需要上报mes
        放货中 =75,
        执行结束 = 80,//单步完成
        执行完成 = 99
    }
    public enum TaskParamType {
        机器人分解 = 1,//param下划线前是[Core_Task]的id ，后面是放置位置
        托盘搬运 = 2,//对整托的运输 包括 输送线 垛机，rgv agv  
        进组重定 = 301,// 
        进组重定2 = 302,// 
        组内移位 = 401,//
        组内移位2 = 402,//
    }
}